package cn.comon.app.scan.service.impl;

import java.io.Serializable;
import java.util.List;

import cn.comon.app.scan.dao.BaseDao;
import cn.comon.app.scan.mapper.BaseMapper;
import cn.comon.app.scan.service.BaseService;
import cn.comon.app.scan.util.Page;

/**
 * ҵ�񹫹���Service��ӿ�
 * @author xiaoyaoyao
 * @version [�汾��:1.0, 2011-06-09]
 */
public class BaseServiceImpl<T> implements BaseService<T>
{
	private BaseDao<T, ? extends BaseMapper<T>> baseDao;
	
	/**
	 * ��������ѯ��Ӧ�Ķ���
	 * @param primaryKey ���������
	 * @return ��ѯ��Ķ���
	 */
	public T findByID(Serializable primaryKey)
	{
		return baseDao.findByID(primaryKey);
	}
		
	/**
	 * ��ݶ�������ɾ���Ӧ�Ķ���
	 * @param primaryKey �����
	 */
	public void deleteByID(Serializable primaryKey)
	{
		baseDao.deleteByID(primaryKey);
	}
	
	/**
	 * ��ѯ���ж���ĳ���
	 * @return ��ݵĳ���
	 */
	public int findAllObjLength()
	{
		return baseDao.findAllObjLength();
	}
	
	/**
	 * ��ҳ��ѯ����
	 * @param page Page����
	 * @return ���ز�ѯ�������
	 */
	public List<T> findByPage(Page<T> page)
	{
		return baseDao.findByPage(page);
	}
	
	/**
	 * ���������ݿ����
	 * @param t Ҫ����Ķ���
	 */
	public void addObj(T t)
	{
		baseDao.addObj(t);
	}
	
	/**
	 * ��ݶ�����ֶν��в�ѯ
	 * @param paramName Ҫ��ѯ���ֶ�
	 * @param paramValue ���ֶζ�Ӧ��ֵ
	 * @return ��ѯ�������
	 */
	public List<T> findByParam(String paramName, Serializable paramValue)
	{
		return baseDao.findByParam(paramName, paramValue);
	}

	public void setBaseDao(BaseDao<T, ? extends BaseMapper<T>> baseDao)
    {
		this.baseDao = baseDao;
    }
}
